﻿//using System;
//using System.Collections.Generic;

//using mvcForum.Core.Interfaces.Data;

//namespace mvcForum.Web.Services {

//    public class InMemoryCache : IApplicationCache {
//        private readonly Dictionary<String, Object> cache = new Dictionary<String, Object>();

//        public Boolean Exists(String key) {
//            return this.cache.ContainsKey(key);
//        }

//        public Boolean TryGet<TEntity>(String key, out TEntity element) {
//            Object obj;
//            if (this.cache.TryGetValue(key, out obj)) {
//                element = (TEntity)obj;
//                return true;
//            }

//            element = default(TEntity);
//            return false;
//        }

//        public void Store(String key, Object element) {
//            InMemoryCache.Store(key, element, this.cache);
//        }

//        public void Remove(String key) {
//            cache.Remove(key);
//        }

//        private static Object cacheLock = new Object();
//        private static void Store(String key, Object element, Dictionary<String, Object> cache) {
//            lock (cacheLock) {
//                cache[key] = element;
//            }
//        }
//    }
//}